地图截屏功能 Sample详情

最后更新时间:2020年12月8日

类似移动设备中的截屏功能,MapView提供只对地图截屏的功能,以图片的形式保存截取的地图。

具体请参考API:com.zondy.mapgis.map.view.mapview程序包中的MapView类方法。

1 全图截屏

获取地图视图完整范围的地图截图。

mapView.getScreenSnapshot(new MapViewScreenSnapshotCallback() {
	@Override
	public void onScreenSnapshot(Bitmap bitmap) {
		//在此回调方法中可以获取到Bitmap对象,用户可自行保存为本地图片文件
	}
	@Override
	public void onScreenSnapshot(int i, int i1, int i2, int i3, Bitmap bitmap) {
		
	}
});

2 范围截屏

获取指定视图区域内的地图截图。

mapView.getScreenSnapshot(0, 0, 500, 500, new MapViewScreenSnapshotCallback() {
	@Override
	public void onScreenSnapshot(Bitmap bitmap) {
		
	}
	@Override
	public void onScreenSnapshot(int i, int i1, int i2, int i3, Bitmap bitmap) {
		//在此回调中可以获取到调用截屏代码时传入的视图范围,以及截取的位图
	}
});

说明:getScreenSnapshot方法的前两个参数表示指定视图区域左上角的x、y坐标,采用视图坐标;第三、四个参数表示指定视图区域的宽、高。

3 地图出图

指定的地图范围获取地图图片,与地图是否显示在当前视图范围内无关。

//出图范围(采用地图坐标)
Rect mDisRange = mapView.getMap().getEntireRange();
//构建位图对象,给定宽、高、像素格式
Bitmap rangebmp = Bitmap.createBitmap(mapView.getMeasuredWidth(),mapView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
//根据范围出图
mapView.getBitmap(mDisRange, rangebmp);

方法getBitmap()中,第一个参数为指定的出图范围,第二个参数为用户的在外部构造的用于保存出图结果的bitmap对象。出图的结果同样保存到其位图参数对象rangebmp中,可以对位图rangebmp做进一步的处理,可以显示到界面中,也可保存为本地图片文件。

说明:地图范围的指定采用地图坐标,成生的图像的宽高由用户在构造Bitmap对象时指定;生成的图像含有透明通道,在视图上显示时需要设置视图的背景颜色;用户构造的Bitmap像素格式必须为ARGB_8888。

全图截屏.png 范围截屏.png 范围出图.png